package cn.edu.hunau.basic.day03;

import org.junit.Test;

import java.util.Arrays;
import java.util.Random;

/**
 * @author hb
 * @date 2025-07-30 15:01:45
 */
public class SufferArrayTest {

    @Test
    public void test01(){
        int [] arr=new int[20];
        for(int i=0;i<arr.length;i++){
            arr[i]=i+1000;
        }
        //Arrays.toString是JDK提供的输出数组内容的工具方法
        System.out.println(Arrays.toString(arr));
        //交换,下标0和10之间的数据
       // change(arr,0,10);
       // System.out.println(Arrays.toString(arr));
        suffer(arr);
        System.out.println(Arrays.toString(arr));

        //提供一个乱序的算法
    }

    /**
     * 对数组进行乱序
     * @param arr
     */
    public void suffer(int[] arr){
       Random r=new Random();
       for(int i=arr.length-1;i>0;i--){
             //获得随机的下标
             int j= r.nextInt(i);//[0,i)
             //实现数据的交换
             change(arr,i,j);
       }
    }

    /**
     * 实现对arr中i和j两个位置上的数据进行交换
     * @param arr
     * @param i
     * @param j
     */
    public void change(int[] arr,int i,int j){
      //定义临时变量
        int temp=arr[i];
        arr[i]= arr[j];
        arr[j]=temp;
    }
}
